Tapestry একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক, যা ডেভেলপারদের ফর্ম হ্যান্ডলিং এবং ইনপুট ভ্যালিডেশন প্রক্রিয়াকে সহজ এবং কার্যকরভাবে পরিচালনা করতে সহায়তা করে। Tapestry ফ্রেমওয়ার্কে ফর্ম এবং ভ্যালিডেশন এর কার্যক্রম একটি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে, যা ফর্ম ডেটা সংগ্রহ এবং তার সঠিকতা যাচাই করতে ব্যবহৃত হয়।
এই টিউটোরিয়ালে, Tapestry ফ্রেমওয়ার্কের ফর্ম এবং ভ্যালিডেশন কিভাবে কাজ করে এবং কিভাবে এগুলো ব্যবহার করা যায় তা বিস্তারিতভাবে আলোচনা করা হবে।
Tapestry এ ফর্ম হ্যান্ডলিং প্রক্রিয়াটি Model-View-Controller (MVC) প্যাটার্নে কাজ করে, যেখানে Model ডেটা রিপ্রেজেন্ট করে, View হল ফর্মের UI (HTML), এবং Controller হল ফর্মের লজিক যা ফর্ম ডেটা প্রক্রিয়া করে।
<t:form>
ট্যাগ ব্যবহৃত হয়। এই ট্যাগটি HTML ফর্মের সাথে সংযুক্ত থাকে এবং ফর্মের submit এবং validation প্রক্রিয়া পরিচালনা করে।onSubmit
মেথডে পাঠানো হয়, যেখানে ফর্ম ডেটা প্রক্রিয়া করা হয়।<!DOCTYPE html>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>User Registration Form</title>
</head>
<body>
<h1>User Registration</h1>
<t:form t:id="registrationForm">
<t:textfield t:id="username" value="user.username" />
<t:passwordfield t:id="password" value="user.password" />
<t:button>Submit</t:button>
</t:form>
</body>
</html>
এখানে username
এবং password
ইনপুট ফিল্ড যুক্ত করা হয়েছে। এই ফর্মে ইনপুট ডেটা একটি Java Bean ক্লাসের প্রপার্টিতে মাপল করা হবে।
Java Bean (RegistrationForm.java):
public class RegistrationForm {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void onSubmit() {
// ফর্ম সাবমিটের পর লজিক যেমন ডেটাবেসে ডেটা সেভ করা
System.out.println("User Registered: " + username);
}
}
Tapestry এর ভ্যালিডেশন ফ্রেমওয়ার্ক আপনাকে ফর্মের ইনপুট ডেটা যাচাই করার জন্য বিভিন্ন ধরনের ভ্যালিডেশন কন্ট্রোল সরবরাহ করে। এটি আপনাকে সহজে ইনপুট ডেটা ভ্যালিডেশন এবং কাস্টম ভ্যালিডেশন রুল তৈরি করতে সহায়তা করে।
RequiredFieldValidator
: ইনপুট ফিল্ডে কোন ভ্যালু দেওয়া হয়েছে কি না, তা যাচাই করে।RangeValidator
: একটি নির্দিষ্ট রেঞ্জে ইনপুট ভ্যালু রয়েছে কিনা যাচাই করে।EmailValidator
: ইনপুট ভ্যালু একটি বৈধ ইমেইল ঠিকানা কিনা যাচাই করে।<t:form t:id="registrationForm">
<t:textfield t:id="username" value="user.username">
<t:requiredfieldvalidator message="Username is required" />
</t:textfield>
<t:passwordfield t:id="password" value="user.password">
<t:requiredfieldvalidator message="Password is required" />
</t:passwordfield>
<t:button>Submit</t:button>
</t:form>
এখানে username
এবং password
ফিল্ডে RequiredFieldValidator যুক্ত করা হয়েছে, যা নিশ্চিত করবে যে ফিল্ডগুলো খালি না থাকে।
Custom Validation Example:
public class RegistrationForm {
private String username;
private String password;
// Getters and Setters
public void onSubmit() {
if (username.length() < 5) {
throw new ValidationException("Username must be at least 5 characters.");
}
// Further logic
}
}
এখানে একটি কাস্টম ভ্যালিডেশন যোগ করা হয়েছে যা নিশ্চিত করবে যে username
কমপক্ষে ৫টি অক্ষরের হতে হবে।
Tapestry ফ্রেমওয়ার্কে ফর্ম হ্যান্ডলিং এবং ইনপুট ভ্যালিডেশন প্রক্রিয়া খুবই শক্তিশালী এবং নমনীয়। এটি বিল্ট-ইন ভ্যালিডেশন কন্ট্রোল এবং কাস্টম ভ্যালিডেশন তৈরির মাধ্যমে ডেভেলপারদের ইনপুট ডেটা যাচাই করা সহজ করে তোলে। Tapestry ফ্রেমওয়ার্কে ফর্ম ডেটা প্রক্রিয়া এবং সঠিকতা যাচাই একটি অপরিহার্য অংশ, যা অ্যাপ্লিকেশনের নিরাপত্তা এবং কার্যকারিতা বৃদ্ধির জন্য খুবই গুরুত্বপূর্ণ।
Tapestry ফ্রেমওয়ার্কে form component ব্যবহার করে ব্যবহারকারীদের ইনপুট গ্রহণ করা এবং তা প্রসেস করা সহজ এবং কার্যকর। Tapestry তে ফর্ম কম্পোনেন্টগুলি UI কম্পোনেন্টস যেমন textfields, buttons, checkboxes এবং submit actions অন্তর্ভুক্ত থাকে, যা ফর্ম ডেটা সংগ্রহ এবং প্রক্রিয়াকরণে সহায়তা করে।
এই টিউটোরিয়ালে, আমরা দেখব কীভাবে Tapestry তে ফর্ম কম্পোনেন্ট ব্যবহার করে ডেটা সংগ্রহ করা এবং তা প্রক্রিয়াকরণ করা যায়।
Tapestry ফ্রেমওয়ার্কে ফর্ম কম্পোনেন্টগুলি t:form
, t:textfield
, t:passwordfield
, t:checkbox
, t:button
, t:select
ইত্যাদি অন্তর্ভুক্ত থাকে। এই কম্পোনেন্টগুলোর মাধ্যমে আপনি সহজে ফর্ম তৈরি করতে পারেন।
ধরা যাক, আপনি একটি login form তৈরি করতে চান, যেখানে ব্যবহারকারী username এবং password প্রদান করবেন এবং একটি login বাটনে ক্লিক করে লগইন করবেন।
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Login Form</title>
</head>
<body>
<h2>Login</h2>
<!-- Form Tag -->
<t:form t:id="loginForm">
<t:label value="Username" for="username"/>
<t:textfield t:id="username" value="username"/>
<t:label value="Password" for="password"/>
<t:passwordfield t:id="password" value="password"/>
<t:checkbox t:id="rememberMe" value="rememberMe" label="Remember Me" />
<!-- Login Button -->
<t:button t:id="loginButton" value="Login"/>
</t:form>
</body>
</html>
এখানে:
t:form
: এটি একটি ফর্ম তৈরি করে, যা ব্যবহারকারীর ইনপুট গ্রহণের জন্য ব্যবহৃত হয়।t:textfield
: এটি একটি টেক্সট ফিল্ড তৈরি করে যা ব্যবহারকারীকে username ইনপুট করতে দেয়।t:passwordfield
: এটি একটি পাসওয়ার্ড ফিল্ড তৈরি করে, যেখানে ইনপুট হিডেন থাকে।t:checkbox
: এটি একটি চেকবক্স তৈরি করে, যেখানে ব্যবহারকারী Remember Me চেক করতে পারেন।t:button
: এটি একটি বাটন তৈরি করে, যা ব্যবহারকারীকে লগইন করার জন্য ক্লিক করতে দেয়।এখন, ফর্মের ডেটা প্রক্রিয়া এবং সঠিকভাবে ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য একটি Java ক্লাস তৈরি করতে হবে। এই Java ক্লাসে Tapestry-এর ইনপুট ডেটা প্রক্রিয়াকরণ করা হয়।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
public class Login {
@Property
private String username; // Username field
@Property
private String password; // Password field
@Property
private boolean rememberMe; // Checkbox for remember me option
// Action to be performed when the form is successfully submitted
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
// Redirect to home page if login is successful
return Home.class;
} else {
// Stay on the login page if credentials are incorrect
return Login.class;
}
}
}
এখানে:
Tapestry আপনাকে ভ্যালিডেশন ফিচার সরবরাহ করে, যা ফর্ম ডেটা যাচাই করতে সহায়তা করে। আপনি Tapestry-এর বিল্ট-ইন data validation ফিচার ব্যবহার করতে পারেন।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.validator.annotations.Length;
public class Login {
@Property
@Length(min = 5, message = "Username must be at least 5 characters long")
private String username; // Username field
@Property
@Length(min = 6, message = "Password must be at least 6 characters long")
private String password; // Password field
@Property
private boolean rememberMe; // Checkbox for remember me option
// Action to be performed when the form is successfully submitted
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
return Home.class;
} else {
return Login.class;
}
}
}
এখানে:
ফর্ম ডেটা সাবমিট হওয়ার পরে, আপনি Tapestry তে action methods ব্যবহার করে ডেটা প্রসেস করতে পারেন এবং তার উপর ভিত্তি করে রেসপন্স প্রদান করতে পারেন।
Tapestry ফ্রেমওয়ার্কে form components ব্যবহার করা খুবই সহজ এবং ডাইনামিক। t:form
, t:textfield
, t:passwordfield
, t:checkbox
, এবং t:button
কম্পোনেন্ট ব্যবহার করে আপনি দ্রুত ফর্ম তৈরি করতে পারেন এবং Tapestry এর অটোমেটিক data binding এবং validation ফিচার ব্যবহার করে ইনপুট ডেটা প্রক্রিয়া করতে পারেন। Tapestry ফর্ম কম্পোনেন্টগুলির মাধ্যমে ইউজার ইন্টারফেস এবং ব্যাকএন্ড লজিকের মধ্যে একটি পরিষ্কার এবং কার্যকর সংযোগ তৈরি করা যায়।
Apache Tapestry একটি শক্তিশালী Validation Framework সরবরাহ করে, যা ফর্মের ইনপুট ডেটার বৈধতা যাচাই করতে সাহায্য করে। এটি ডেভেলপারদেরকে data validation সহজে এবং কার্যকরভাবে প্রয়োগ করতে সহায়তা করে। Tapestry-এর ভ্যালিডেশন ফ্রেমওয়ার্কটি অ্যানোটেশন-বেসড ভ্যালিডেশন, কাস্টম ভ্যালিডেশন রুলস, এবং ব্যবহারকারী বান্ধব ত্রুটি বার্তা সমর্থন করে।
এই ফ্রেমওয়ার্কটি server-side validation সম্পাদন করে, তবে আপনি ক্লায়েন্ট-সাইড ভ্যালিডেশনও প্রয়োগ করতে পারেন যদি চান। Tapestry-এর built-in ভ্যালিডেশন অ্যানোটেশনগুলি ডাটা ভ্যালিডেশন এবং ফিল্ডের মধ্যে সম্পর্ক সরল ও স্বচ্ছ করে।
Tapestry এর বিভিন্ন ভ্যালিডেশন অ্যানোটেশন রয়েছে, যা সহজেই প্রপার্টি বা ফিল্ডের জন্য ব্যবহার করা যেতে পারে।
@Required
@Required
অ্যানোটেশন ব্যবহার করা হয়, যা ইনপুট ফিল্ডটি অবশ্যই পূর্ণ করতে হবে।উদাহরণ:
@Property
@Required(message = "Username is required")
private String username;
@Length
@Length
অ্যানোটেশন ব্যবহার করে একটি স্ট্রিংয়ের জন্য মিনিমাম এবং ম্যাক্সিমাম দৈর্ঘ্য নির্ধারণ করা যায়।উদাহরণ:
@Property
@Length(min = 5, max = 20, message = "Username must be between 5 and 20 characters")
private String username;
@Email
অ্যানোটেশন ব্যবহার করা হয়, যা ফিল্ডের মান একটি বৈধ ইমেল ঠিকানা কিনা তা যাচাই করে।উদাহরণ:
@Property
@Email(message = "Please enter a valid email address")
private String email;
@Pattern
@Pattern
অ্যানোটেশন ব্যবহার করে আপনি একটি নির্দিষ্ট প্যাটার্নে ইনপুট ডেটা যাচাই করতে পারেন, যেমন নম্বর, ফোন নম্বর ইত্যাদি।উদাহরণ:
@Property
@Pattern(regexp = "\\d{10}", message = "Phone number must be 10 digits")
private String phoneNumber;
@Range
@Range
অ্যানোটেশন ব্যবহার করে সংখ্যার জন্য একটি নির্দিষ্ট সীমা নির্ধারণ করা যায়, যেমন একটি ইনপুটের মান অবশ্যই ১ থেকে ১০০ এর মধ্যে হতে হবে।উদাহরণ:
@Property
@Range(min = 1, max = 100, message = "Age must be between 1 and 100")
private int age;
Tapestry আপনাকে কাস্টম ভ্যালিডেশন তৈরি করার সুযোগ দেয়। আপনি একটি ভ্যালিডেশন ক্লাস তৈরি করতে পারেন এবং @Validate
অ্যানোটেশন ব্যবহার করে সেটি প্রোপার্টিতে প্রয়োগ করতে পারেন।
package com.example.validators;
import org.apache.tapestry5.validator.AbstractValidator;
import org.apache.tapestry5.validator.ValidationException;
public class CustomValidator extends AbstractValidator {
@Override
public void validate(Object value, String message, ValidationException exception) {
String input = (String) value;
if (input != null && input.length() < 5) {
exception.addValidationError(message); // Custom error message
}
}
}
@Property
@Validate(CustomValidator.class)
private String customField;
এখানে, যদি customField
এর মান ৫টি ক্যারেক্টারের চেয়ে ছোট হয়, তাহলে এটি একটি ত্রুটি তৈরি করবে।
Tapestry অটোমেটিকভাবে ফর্ম সাবমিশন এবং ভ্যালিডেশন চেকের পর ত্রুটি বার্তা দেখাবে। আপনি এটি কাস্টমাইজ করতে পারেন যাতে আরও স্পষ্ট বার্তা প্রদর্শিত হয়। সাধারণত, ফর্ম ভ্যালিডেশন ত্রুটির বার্তা <t:form>
এর মধ্যে প্রদর্শিত হয়।
উদাহরণ:
<t:form t:id="userForm">
<t:textfield t:id="username" value="username" />
<t:passwordfield t:id="password" value="password" />
<t:button value="Submit" t:id="submitButton"/>
<!-- Display validation error messages -->
<t:message t:id="errorMessage" for="username"/>
<t:message t:id="errorMessage" for="password"/>
</t:form>
এখানে:
<t:message>
ট্যাগটি নির্দিষ্ট ইনপুট ফিল্ডের জন্য ত্রুটি বার্তা প্রদর্শন করতে ব্যবহৃত হয়। for
অ্যাট্রিবিউটের মাধ্যমে আপনি যে ফিল্ডের জন্য ত্রুটি বার্তা দেখাতে চান তা নির্দিষ্ট করতে পারেন।Tapestry এর Validation Framework একটি শক্তিশালী এবং নমনীয় টুল, যা আপনাকে ফর্ম ডেটা যাচাই করতে সাহায্য করে। এতে বিভিন্ন বিল্ট-ইন ভ্যালিডেশন অ্যানোটেশন যেমন @Required, @Length, @Email, @Pattern, এবং @Range সহ কাস্টম ভ্যালিডেশন তৈরি করার সুবিধা রয়েছে। Tapestry ভ্যালিডেশন আপনাকে সহজে এবং কার্যকরভাবে ফর্ম ডেটার বৈধতা যাচাই করতে সহায়তা করে এবং ত্রুটি বার্তা দেখানোর প্রক্রিয়াকে সহজ করে তোলে।
Apache Tapestry-এর Validation Framework আপনাকে বিভিন্ন ধরণের ডেটা যাচাই করার সুবিধা প্রদান করে, যেমন ফর্ম ইনপুট এর সঠিকতা যাচাই করা। Tapestry ফ্রেমওয়ার্কে আপনি Custom Validation তৈরি করতে পারেন, যা ব্যবহারকারী ইনপুট অনুযায়ী আপনার নির্দিষ্ট কাস্টম রুলস অনুসারে ডেটা যাচাই করবে।
এখানে আমরা Custom Validation তৈরি করার পদ্ধতি সম্পর্কে আলোচনা করব।
Tapestry-তে Custom Validation তৈরি করতে, প্রথমে আপনাকে একটি Validator Class তৈরি করতে হবে যা Validator
ইন্টারফেস বা @Validate এনোটেশন ব্যবহার করবে।
Custom Validator Class তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:
Custom Validator Interface তৈরি করা
Tapestry আপনাকে নিজের কাস্টম ভ্যালিডেশন তৈরি করার জন্য একটি interface প্রদান করে যার মাধ্যমে আপনি নির্দিষ্ট ভ্যালিডেশন রুল তৈরি করতে পারবেন।
package com.example.validators;
import org.apache.tapestry5.Validator;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.annotations.Validate;
public class UsernameValidator implements Validator<String> {
@Override
public void validate(String value) throws ValidationException {
if (value == null || value.trim().isEmpty()) {
throw new ValidationException("Username cannot be empty.");
}
if (value.length() < 5) {
throw new ValidationException("Username must be at least 5 characters long.");
}
if (value.contains(" ")) {
throw new ValidationException("Username cannot contain spaces.");
}
}
}
এখানে:
এখন আমরা Login ফর্মের username ফিল্ডে এই কাস্টম ভ্যালিডেশন প্রয়োগ করব।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.Validate;
import org.apache.tapestry5.ioc.annotations.Inject;
import com.example.validators.UsernameValidator;
public class Login {
@Property
@Validate("usernameValidator")
private String username; // Username field
@Property
private String password; // Password field
@Property
private boolean rememberMe; // Remember Me checkbox
// Action to be performed when the form is successfully submitted
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
return Home.class;
} else {
return Login.class;
}
}
}
এখানে:
এখন, আমাদের ফর্মের TML টেমপ্লেট ফাইলের মাধ্যমে ভ্যালিডেশন বার্তা দেখাতে হবে।
login.tml (TML ফাইল):
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Login Form</title>
</head>
<body>
<h2>Login</h2>
<!-- Form Tag -->
<t:form t:id="loginForm">
<t:label value="Username" for="username"/>
<t:textfield t:id="username" value="username"/>
<t:label value="Password" for="password"/>
<t:passwordfield t:id="password" value="password"/>
<t:checkbox t:id="rememberMe" value="rememberMe" label="Remember Me" />
<!-- Login Button -->
<t:button t:id="loginButton" value="Login"/>
</t:form>
<!-- Displaying validation error messages -->
<t:if test="username.validator.hasErrors">
<div style="color: red;">
<t:message from="username" />
</div>
</t:if>
</body>
</html>
এখানে:
<t:message>
: এই ট্যাগটি ব্যবহারকারীর ইনপুটের জন্য সংশ্লিষ্ট ভ্যালিডেশন ত্রুটি বার্তা দেখাতে ব্যবহৃত হয়। এখানে username ইনপুটের জন্য কোনো ত্রুটি হলে, এটি ত্রুটি বার্তা প্রদর্শন করবে।<t:if>
: এটি একটি কন্ডিশনাল ট্যাগ, যা ভ্যালিডেশন ত্রুটি থাকলে ত্রুটি বার্তা প্রদর্শন করবে।Tapestry-তে Custom Validation আরও উন্নত করতে, আপনি multiple constraints এবং Complex Validation প্রয়োগ করতে পারেন, যেমন:
এছাড়া আপনি custom validation annotations তৈরি করে, অন্যান্য ফিল্ডগুলিতেও এই কাস্টম ভ্যালিডেশন প্রয়োগ করতে পারেন।
Tapestry ফ্রেমওয়ার্কে Custom Validation তৈরি করা সহজ এবং কার্যকর। @Validate
এনোটেশন এবং Validator Interface ব্যবহার করে আপনি আপনার নিজস্ব ভ্যালিডেশন রুল তৈরি করতে পারেন, যা ফর্ম ডেটা যাচাই করতে সহায়ক। Tapestry Validation Framework এর মাধ্যমে আপনি দ্রুত এবং পরিষ্কারভাবে ফর্মের ভ্যালিডেশন করতে পারবেন, এবং কাস্টম ভ্যালিডেশন ব্যবহার করে আপনাদের প্রয়োজনীয় নির্দিষ্ট চেক করতে পারবেন।
Tapestry ফ্রেমওয়ার্কে form submission এবং server-side processing কার্যকরভাবে পরিচালনা করা হয়। এটি form components এবং action methods ব্যবহার করে ফর্ম ডেটা প্রক্রিয়া এবং সাবমিট করে। এর মাধ্যমে আপনি ব্যবহারকারীদের ইনপুট গ্রহণ, ডেটা ভ্যালিডেশন, এবং সার্ভার সাইড প্রক্রিয়াকরণ করতে পারেন।
এই টিউটোরিয়ালে, আমরা দেখব কীভাবে Tapestry তে একটি ফর্ম সাবমিট করা হয় এবং তারপরে সার্ভার সাইডে ডেটা প্রক্রিয়া করা হয়।
প্রথমে একটি ফর্ম তৈরি করা হবে যাতে ব্যবহারকারী কিছু ইনপুট প্রদান করতে পারে। এখানে একটি সাধারণ login form তৈরি করা হবে।
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Login Form</title>
</head>
<body>
<h2>Login</h2>
<!-- Form Tag -->
<t:form t:id="loginForm">
<t:label value="Username" for="username" />
<t:textfield t:id="username" value="username" />
<t:label value="Password" for="password" />
<t:passwordfield t:id="password" value="password" />
<!-- Login Button -->
<t:button t:id="loginButton" value="Login" />
</t:form>
</body>
</html>
এখানে:
ফর্মটি যখন সাবমিট হবে, তখন Tapestry একটি action method কল করবে, যেখানে ডেটা প্রক্রিয়া এবং অন্যান্য কাজ করা যাবে। ফর্মের ডেটা প্রসেস করার জন্য আমরা একটি Java ক্লাস ব্যবহার করব।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
public class Login {
@Property
private String username; // Username field
@Property
private String password; // Password field
// Action method for form submission
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
// Redirect to Home page if login is successful
return Home.class;
} else {
// Stay on the login page if login fails
return Login.class;
}
}
}
এখানে:
Tapestry এর নিজস্ব ভ্যালিডেশন ফ্রেমওয়ার্ক রয়েছে, যা ডেটার ভ্যালিডেশন করতে সাহায্য করে। আপনি ফর্ম ডেটার উপর কাস্টম ভ্যালিডেশন যোগ করতে পারেন।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.validator.annotations.Length;
public class Login {
@Property
@Length(min = 5, message = "Username must be at least 5 characters")
private String username; // Username field
@Property
@Length(min = 6, message = "Password must be at least 6 characters")
private String password; // Password field
// Action method for form submission
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
// Redirect to Home page if login is successful
return Home.class;
} else {
// Stay on the login page if login fails
return Login.class;
}
}
}
এখানে:
ফর্মটি যখন সাবমিট হয়, তখন onSuccessFromLoginForm() মেথডটি কল হবে। এই মেথডে:
এছাড়া, আপনি onFailure এবং onSuccess মেথডগুলো ব্যবহার করে ফর্মের সাবমিশন প্রসেসে আরো কাস্টম কার্যাবলী যোগ করতে পারেন, যেমন ত্রুটি বার্তা প্রদর্শন বা লগিং।
Tapestry তে ফর্ম সাবমিশন এবং সার্ভার সাইড প্রসেসিং খুবই সহজ এবং কার্যকর। t:form, t:textfield, t:passwordfield, t:button কম্পোনেন্ট ব্যবহার করে ফর্ম তৈরি করা হয় এবং action methods ব্যবহার করে ডেটা প্রক্রিয়া করা হয়। Tapestry এর ফর্ম ভ্যালিডেশন ফিচার সহ, আপনি ডেটার জন্য কাস্টম ভ্যালিডেশন যোগ করতে পারেন, যাতে ব্যবহারকারী ইনপুট সঠিক এবং নির্ভুল থাকে।
Read more